package cn.iocoder.yudao.module.product.category.dal.dataobject;

import cn.iocoder.yudao.framework.business.basic.pojo.po.MerchantScopeEntity;
import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum;
import com.baomidou.mybatisplus.annotation.KeySequence;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

/**
 * 产品分类 DO
 *
 * @author 芋道源码
 */
@TableName("product_category")
@KeySequence("product_category_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库，可不写。
@Data
@NoArgsConstructor
@AllArgsConstructor
public class ProductCategoryDO extends MerchantScopeEntity {

    /**
     * 父分类编号 - 根分类
     */
    public static final Long PARENT_ID_FIRST_LEVEL = 0L;
    /**
     * 限定分类层级
     */
    public static final int CATEGORY_TOP_LEVEL_ROOT = 0;
    /**
     * 限定分类层级
     */
    public static final int CATEGORY_TOP_LEVEL_1 = 1;
    /**
     * 限定分类层级
     */
    public static final int CATEGORY_TOP_LEVEL_2 = 2;

    /**
     * 分类标识，用于给前端做判断
     */
    private String code;
    /**
     * 父分类编号
     */
    private Long parentId;
    /**
     * 分类名称
     */
    private String name;
    /**
     * 移动端分类图
     *
     * 建议 180*180 分辨率
     */
    private String picUrl;
    /**
     * 跳转链接
     */
    private String linkUrl;
    /**
     * 是否推荐
     */
    private Boolean recommend;
    /**
     * 分类排序
     */
    private Integer sort;
    /**
     * 层级深度
     */
    private Integer depth;
    /**
     * 开启状态
     *
     * 枚举 {@link CommonStatusEnum}
     */
    private Integer status;
    /**
     * 供应方名称
     */
    private String supplyName;
    /**
     * 供应方关联编号
     */
    private Long supplyRelatedId;
    /**
     * 供应方关联父级编号
     */
    private Long supplyRelatedParentId;

}
